﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dominio
{
    public class CompraHandler
    {
        private static CompraHandler instance = null;
        private IDatos datos;

        private CompraHandler()
        {
            
        }

        public void setDatosInstance(IDatos dat)
        {
            datos = dat;
        }

        public static CompraHandler getInstance()
        {
            if (instance == null)
            {
                instance = new CompraHandler();
            }
            return instance;
        }

        public List<BLProducto> buscar(string criterio)
        {
            try
            {
               return FabricaIndexador.getIndexador().buscar(criterio);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public List<BLProducto> buscar(string idCategoria, string criterio)
        {
            try
            {
                return FabricaIndexador.getIndexador().buscar(idCategoria, criterio);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<BLProducto> buscar(Dictionary<string, string> busqueda)
        {
            try
            {
                return FabricaIndexador.getIndexador().buscar(busqueda);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }


        public void agregarProductoACarrito(String usuario, int codProducto)
        {
            datos.agregarProductoACarrito(usuario, codProducto);
        }

        public void agregarCompra(DateTime fecha, string direccion, string telefono, string blu)
        {
            try
            {
                datos.agregarCompra(fecha, direccion, telefono, blu);
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }

        public int getCantProductosAgregados(string userName1, int productoID1)
        {
            return datos.getCantProductosAgregados(userName1, productoID1);
        }

        public BLCarritoCompra getCarritoCompraUsuario(string username)
        {
            try
            {
                //datos.getCarritoCompra(username);
                return new BLCarritoCompra();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
